package szxy.base.day05;
/*
     java中第一个存储数据的容器：数组
    特点：
        1、数组的长度大小是固定的
        2、同一个数组中，存储的元素数据类型是一样的

    数组的定义语句格式：
        数据类型[] 数组名;
        举例：int[] arr; // 定义了一个可以存储int类型的一维数组，数组名叫做arr

    数组没有初始化，无法直接使用，数组是我们第一个接触到的引用数据类型
    如何对数组进行初始化？
        动态初始化：先规定数组的大小，数组中的元素先系统赋默认值，后续再自己赋值
        静态初始化：自己将数据赋值，大小由系统根据我们赋值的数量来决定

    JVM内存的划分：


    动态初始化：
        语句定义格式：
            数据类型[] 数组名 = new 数据类型[数组的大小];
            举例：int[] arr = new int[3];
            // 白话文解释：创建了一个可以存储3个int类型元素大小的数组，数组名叫做arr
            // 专业术语解释：在堆内存中开辟一个连续空间大小为3的数组对象，将地址值赋值给栈内存中arr变量
 */
public class demo6Array {
    public static void main(String[] args) {
        //定义一个可以存储int类型的一维数组，数组名叫做arr
        //推荐定义一维数组的时候，中括号在紧跟着数据类型的后面
//        int[] arr;   //推荐：******
//        int [] arr1;
//        int arr2[];
//
//        System.out.println(arr);   //可能尚未初始化变量arr

        /*
              左边：
                int:表示存储元素的数据类型
                []:表是这是一个一维数组
                arr；数组名，相当于变量名
              右边：
                new:在堆内存中开辟空间，将来看到new，就意味着在堆内存中开辟空间
                int:表示存储元素的数据类型
                []:表是这是一个一维数组
                3:表示该数组最多可以存储3个元素，数组长度为3
         */
        int[] arr=new int[3];
        System.out.println(arr);   //[I@4554617c

        /*
            如何获取数组中的元素？
            索引


            java中的数组具有索引下标的概念，可以通过索引获取对应位置上的元素，索引从左向右，从0开始
            索引最大值=长度-1
            语句定义格式：
                数组名[索引]

         */
        System.out.println(arr[0]);      //获取第一个元素值
        System.out.println(arr[1]);      //获取第二个元素值
        System.out.println(arr[2]);      //获取第三个元素值
    }
}
